// FunctionFactory.h: interface for the FunctionFactory class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FUNCTIONFACTORY_H__8F331908_1148_498B_8DF4_FC2C4654C399__INCLUDED_)
#define AFX_FUNCTIONFACTORY_H__8F331908_1148_498B_8DF4_FC2C4654C399__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "map.h"
#include "FunctionStack.h"

class FunctionFactory  
{
public:
	FunctionFactory();
	virtual ~FunctionFactory();

public:
	FunctionStack& GetFunctionStack(const CString& strID, const CString& strStandard);

private:
	FunctionStack* NewFunctionStack(const CString& strID, const CString& strStandard);
	FunctionStack* FindFunctionStack(const CString& strKey);

private:
	CMap<CString, CString, FunctionStack*, FunctionStack*> m_theFunctionTemplate;
};

#endif // !defined(AFX_FUNCTIONFACTORY_H__8F331908_1148_498B_8DF4_FC2C4654C399__INCLUDED_)
